<?php
/**
 * Script pour la création d'un compte utilisateur
 * 
 * Sécurité : 
 * -> Cette page n'est accessible qu'aux utilisateurs non connectés
 * 
 **/


$template->setTemplateFile('center','tpl/center.tpl');

// L'utilisateur est connecté, on doit le rediriger vers l'accueil
if($_SESSION['user_rank'] > 0) {
	
	$template->setTemplateFile('center','tpl/center.tpl');
	$template->parseTemplate('center',"CENTER_CONTENT","Erreur: vous disposez déjà d'un compte utilisateur.");
	header("Location: index.php");
	
}
// Contenu de le page si l'utilisateur est non connecté
else
{

/*######################################################################
 #  PAGE CREATION DU COMPTE
 #####################################################################*/	
	
// Contenu entré par l'utilisateur
$user_content = array(
		'email' => '',
		'nom' => '',
		'prenom' => '',
		'password' => '',
		'ddn_jour' => '',
		'ddn_mois' => '',
		'ddn_annee' => '',
		'adresse' => '',
		'cp' => '',
		'tel' => '',
);
// Gestion des erreurs
$valid_query = true;
$error_msg = array(
		'email' => '',
		'password' => '',
		'nom' => '',
		'prenom' => '',
		'ddn' => '',
		'adresse' => '',
		'cp' => '',
		'tel' => '',
);

// Traitement du formulaire envoyé

/***********************************************************************
 *  EMAIL
 **********************************************************************/
if(isset($_POST['email'])) 	{
	// Check email
	$user_content['email'] = html_escape($_POST['email']);
	if(!preg_match("#^[a-zA-Z0-9\.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\.]+$#i" , $user_content['email'])) {
		$valid_query = false;
		$error_msg['email'] = "Vous devez entrer une adresse email correcte";	
	}
	$user_content['email'] = sql_protect($user_content['email']);
}
else 
	// Pas d'email entré
	$valid_query = false; 

/***********************************************************************
 *  PASSWORD
 **********************************************************************/
if(isset($_POST['password']) && isset($_POST['password2'])) {	
	// Check passwords
	$user_content['password'] = html_escape(sql_protect($_POST['password']));
	$size = strlen($_POST['password']);
	if($size > 0 && $_POST['password'] !== $_POST['password2']) {
		$valid_query = false;
		$error_msg['password'] = "Les mots de passe entrés sont différents";		
	}
}
else 
	// Pas d'email entré
	$valid_query = false; 
 
/***********************************************************************
 *  NOM
 **********************************************************************/
if(isset($_POST['nom'])) {	
	// Check name
	$user_content['nom'] = html_escape(sql_protect($_POST['nom']));
	$size = strlen($user_content['nom']);
	if($size <= 0 || $size > 99) {
		$valid_query = false;
		$error_msg['nom'] = "Ce nom est invalide.";		
	}
}
else 
	// Pas d'email entré
	$valid_query = false; 

/***********************************************************************
 *  PRENOM
 **********************************************************************/
if(isset($_POST['prenom'])) {
	// Check name
	$user_content['prenom'] = html_escape(sql_protect($_POST['prenom']));
	$size = strlen($user_content['prenom']);
	if($size <= 0 || $size > 99) {
		$valid_query = false;
		$error_msg['prenom'] = "Ce prénom est invalide.";		
	}
}
else 
	// Pas d'email entré
	$valid_query = false; 

/***********************************************************************
 *  DDN
 **********************************************************************/
if(isset($_POST['ddn_jour']) && isset($_POST['ddn_mois']) && isset($_POST['ddn_annee']) ) {
	// Check ddn
	$user_content['ddn_jour'] = html_escape(sql_protect((int)$_POST['ddn_jour']));
	$user_content['ddn_mois'] = html_escape(sql_protect((int)$_POST['ddn_mois']));
	$user_content['ddn_annee'] = html_escape(sql_protect((int)$_POST['ddn_annee']));
	if( !checkdate ( $user_content['ddn_mois'] , $user_content['ddn_jour'] , $user_content['ddn_annee'] )) {
		$valid_query = false;
		$error_msg['ddn'] = "La date entrée est invalide.";		
	}
}
else 
	// Pas de date entrée
	$valid_query = false; 

/***********************************************************************
 *  Adresse
 **********************************************************************/
if(isset($_POST['adresse'])) {
	// Check
	$user_content['adresse'] = html_escape(sql_protect($_POST['adresse']));
	$size = strlen($user_content['adresse']);
	if($size <= 0 || $size > 250) {
		$valid_query = false;
		$error_msg['adresse'] = "L'adresse entrée est invalide (1 ~ 250 caractères).";		
	}
}
else 
	// Pas d'adresse entrée
	$valid_query = false;
	
	
/***********************************************************************
 *  CODE POSTAL
 **********************************************************************/
if(isset($_POST['cp'])) {
	// Check
	$user_content['cp'] = html_escape($_POST['cp']);
	if(!preg_match("#^[0-9]{5}$#",$user_content['cp'])) {
		$valid_query = false;
		$error_msg['cp'] = "Ce code postal n'est pas valide.";		
	}
}
else 
	// Pas de code postal
	$valid_query = false;	
	
/***********************************************************************
 *  NUMERO TEL
 **********************************************************************/
if(isset($_POST['tel'])) {
	// Check
	$user_content['tel'] = html_escape($_POST['tel']);
	if(!preg_match("#^[0-9]{10}$#",$user_content['tel'])) {
		$valid_query = false;
		$error_msg['tel'] = "Ce numéro de téléphone n'est pas valide.";		
	}
}
else 
	// Pas de téléphone
	$valid_query = false;	



/*######################################################################
 #  SI SUCCES : REQUETE SQL DE CREATION DU COMPTE
 #####################################################################*/
if($valid_query) {
	
	// REQUETE SQL DE BOGOSS
	$result = SGBD::query(
			"INSERT INTO utilisateur
			VALUES ('".$user_content['email']."','"
					 .$user_content['password']."','f');");
					 
					 
	$result = SGBD::query(
			"INSERT INTO spectateur
			VALUES ('".$user_content['email']."','"
					 .$user_content['nom']."','"
					 .$user_content['prenom']."','"
					 .$user_content['ddn_annee']."-".$user_content['ddn_mois']."-".$user_content['ddn_jour']."','"
					 .$user_content['adresse']."','"
					 .$user_content['cp']."','"
					 .$user_content['tel']."');");				 
	// FIN REQUETE SQL DE BOGOSS
	
	$template->parseTemplate('center',"CENTER_CONTENT","Votre compte a bien été créé cher <b>". 
										$user_content['prenom'] . " " . $user_content['nom'] . "</b><br/>
										Vous pouvez maintenant vous connecter via le formulaire à gauche.");
	
	
}
/*######################################################################
 #  SI ECHEC OU PAS D'INFOS : FORMULAIRE CREATION DU COMPTE
 #####################################################################*/
else {
	
$template->setTemplateFile('create_account_form','tpl/create_account.tpl');



// Affichage de l'éventuel contenu utilisateur envoyé
$template->parseTemplate('create_account_form',"CONNEXION_FORM_LOGIN",$user_content['email']);
$template->parseTemplate('create_account_form',"CONNEXION_FORM_NOM",$user_content['nom']);
$template->parseTemplate('create_account_form',"CONNEXION_FORM_PRENOM",$user_content['prenom']);
$template->parseTemplate('create_account_form',"CONNEXION_FORM_JOUR",$user_content['ddn_jour']);
$template->parseTemplate('create_account_form',"CONNEXION_FORM_MOIS",$user_content['ddn_mois']);
$template->parseTemplate('create_account_form',"CONNEXION_FORM_ANNEE",$user_content['ddn_annee']);
$template->parseTemplate('create_account_form',"CONNEXION_FORM_ADRESSE",$user_content['adresse']);
$template->parseTemplate('create_account_form',"CONNEXION_FORM_CODE_POSTAL",$user_content['cp']);
$template->parseTemplate('create_account_form',"CONNEXION_FORM_TELEPHONE",$user_content['tel']);

// Affichage des éventuelles erreur
$template->parseTemplate('create_account_form',"CONNEXION_FORM_ERR_LOGIN",$error_msg['email']);
$template->parseTemplate('create_account_form',"CONNEXION_FORM_ERR_PASSWORD",$error_msg['password']);
$template->parseTemplate('create_account_form',"CONNEXION_FORM_ERR_NOM",$error_msg['nom']);
$template->parseTemplate('create_account_form',"CONNEXION_FORM_ERR_PRENOM",$error_msg['prenom']);
$template->parseTemplate('create_account_form',"CONNEXION_FORM_ERR_DATE",$error_msg['ddn']);
$template->parseTemplate('create_account_form',"CONNEXION_FORM_ERR_ADRESSE",$error_msg['adresse']);
$template->parseTemplate('create_account_form',"CONNEXION_FORM_ERR_CODE_POSTAL",$error_msg['cp']);
$template->parseTemplate('create_account_form',"CONNEXION_FORM_ERR_TELEPHONE",$error_msg['tel']);




$template->parseTemplate('center',"CENTER_CONTENT",$template->getTemplate('create_account_form'));








}






} // End : test si utilisateur non connecté
?>
